Map 函数

1.简述

**Transformation(转换)**操作:return a new RDD

map(func):数据集中的每个元素经过用户自定义的函数转换形成一个新的RDD,新的RDD叫MappedRDD

1
2
3
4
5
6
7
8
9
10
object Map {
def main(args: Array[String]) {
val conf = new SparkConf().setMaster("local").setAppName("map")
val sc = new SparkContext(conf)
val rdd = sc.parallelize(1 to 10) //创建RDD
val map = rdd.map(_*2) //对RDD中的每个元素都乘于2
map.foreach(x => print(x+" "))
sc.stop()
}
}

输出:

1
2 4 6 8 10 12 14 16 18 20

(RDD依赖图:红色块表示一个RDD区,黑色块表示该分区集合,下同)

img

2. 分析

1. 在RDD.scala中,有:

image-20200531183231824

SparkContext.scala:

image-20200531183351255

Iterator.scala:

image-20200531183332429

MapPartitionsRDD.scala:

image-20200531183444905

image-20200531184422235

image-20200531184439532

image-20200531185118119

image-20200604231105357

image-20200531195229346